home *** CD-ROM | disk | FTP | other *** search
- set sphere(color) {1.0 0.0 0.0}
- set sphere(radius) 1.0
- EveCmd {set sphere(zMin) -$sphere(radius)}
- EveCmd {set sphere(zMax) $sphere(radius)}
-
- set sphere(thetaMax) 360.0
-
- set sphere(volumePreservingScaleFactor) 1.0
-
- EveCmd {set sphere(xScale) [expr 1./sqrt($sphere(volumePreservingScaleFactor))]}
- EveCmd {set sphere(yScale) $sphere(volumePreservingScaleFactor)}
- EveCmd {set sphere(zScale) [expr 1./sqrt($sphere(volumePreservingScaleFactor))]}
-
- set sphere(xTranslate) 0
- set sphere(yTranslate) 0
- set sphere(zTranslate) 0
- set sphere(xRotate) 0
- set sphere(yRotate) 0
- set sphere(zRotate) 0
-
- EveCmd {set sphere(innerX) [expr {$sphere(radius) * cos(radians($sphere(thetaMax)))}]}
- EveCmd {set sphere(innerY) [expr {$sphere(radius) * sin(radians($sphere(thetaMax)))}]}
-
- proc drawInsideAndCaps {thetaMax zMin zMax radius innerX innerY} {
- if {int($thetaMax) && [expr int($thetaMax)] % 360} \
- { TransformBegin
- Rotate -90 0 1 0
- Rotate -90 1 0 0
- Disk 0 $radius 180
- Rotate $thetaMax 1 0 0
- Disk 0 $radius 180
- TransformEnd
- } {}
- }
-